package com.um.jdy.rpc.api;

import com.um.jdy.rpc.entity.PBDeviceInfo;
import com.um.springcloud.dubbo.cluster.DeviceKey;

/**
 * 充电宝
 * 平台调用设备RPC
 *
 * @author renjunwei
 * 日期 2023/6/27
 * 版权所有 广州优匠科技有限公司
 */
public interface RpcPBDeviceService {

    /**
     * 请求租借充电宝
     *
     * @param seq        序列号
     * @param imei       IMEI码
     * @param port       指定端口租借
     * @param eqp        电量百分比 1-100(建议 80)，电量大于此值的充电宝才能借出
     * @param overtime   超时时间 默认 5 秒,0 为不对比当前时间(可不用)
     */
    String reqRent(String seq, DeviceKey imei, int port,Integer eqp, Integer overtime);

    /**
     * 请求查询端口状态
     *
     * @param seq        序列号
     * @param imei       IMEI码
     * @param port       端口号：255代表全部
     */
    String reqQueryPort(String seq, DeviceKey imei, Integer port);

    /**
     * 请求下发设备重启
     *
     * @param seq        序列号
     * @param imei       IMEI码
     */
    String reqRestart(String seq, DeviceKey imei);

    /**
     * 强制打开端口
     *
     * @param seq        序列号
     * @param imei       IMEI码
     * @param port       端口号：255代表全部
     */
    String reqOpenPort(String seq, DeviceKey imei, Integer port);

    /**
     * 请求下发语音播放
     *
     * @param seq        序列号
     * @param imei       IMEI码
     * @param voice      播放文字
     */
    String reqPlayTTS(String seq, DeviceKey imei, String voice);

    /**
     * 回复充电宝归还
     *
     * @param seq        序列号
     * @param imei       IMEI码
     */
    String respReturn(String seq, DeviceKey imei,int slot,int result);

    /**
     * 回复设备登录
     *
     * @param seq        序列号
     * @param imei       IMEI码
     * @param info       设备信息对象
     */
    String respDeviceLogin(String seq, DeviceKey imei, PBDeviceInfo info);

    /**
     * 回复设备心跳
     *
     * @param seq        序列号
     * @param imei       IMEI码
     */
    String respDeviceHeart(String seq, DeviceKey imei, int heart);
}
